# coding=utf-8
# 学习单位  : 郑州大学
# @Author  : 铭同学
# @Time    : 2021/9/13 23:17
# @Software: PyCharm


import time
import numpy as np
import pandas as pd
import re   #正则表达式用于匹配字符串
from selenium.webdriver import Chrome,ChromeOptions


def get_data():
    option = ChromeOptions()
    option.add_argument("--headless")  # 无头模式，隐藏游览器
    option.add_argument("--no--sandbox")  # 部署于Linux服务器时禁用沙盘需要
    browser = Chrome(options=option
                     ,executable_path="./chromedriver.exe"
                     )
    try:
        #获取恶意网址数据
        url1 = "https://www.anquan123.com/"  # 查看网页源码总共就100条数据,但是只显示12条然后轮播置顶
        browser.get(url1)

        err_urls = []
        url_types = []
        for i in range(2,220) : #由于数据轮播（目前没有好办法）保证获取101个数据（但是会耗费时间和数据冗余）
            time.sleep(1) # 延时
            #获取网址数据
            err_url = browser.find_elements_by_xpath(f'/html/body/div[3]/div/div[3]/div[2]/ul/li[2]/ul/li[3]/span[1]/a')
            #网址类型
            url_type = browser.find_elements_by_xpath(f'/html/body/div[3]/div/div[3]/div[2]/ul/li[2]/ul/li[3]/span[2]')

            err_url = [i.text for i in err_url][0]
            err_urls.append(err_url)
            url_type = [i.text for i in url_type][0]
            url_types.append(url_type)

        print(err_urls)
        print(url_types)

    except Exception as e:
        print(e)

    finally:
        browser.close()

    return err_urls, url_types



def list_to_df():
    # 列表
    data = list(get_data())
    # print(data)
    dict = {
        '网址':data[0],
        '恶意类型':data[1],
    }

    #将字典转换成为数据框
    df = pd.DataFrame(dict)
    # 保存到本地csv
    df.to_csv("data3.csv", encoding='utf-8', index=False)
    print('保存完成！')




if __name__ == "__main__":
    list_to_df()
    # get_data()







